// 编辑中选择用

const rule = {
  'ab': 'AB',
  'enip': 'ENIP',
  'cip': 'CIP',
  'cipmb': 'CIP-MB',
  'commserver': 'COMMSERVER',
  'cimplicity': 'CIMPLICITY',
  'bacnet': 'BACNET',
  'cdt': 'CDT',
  'dlt645': 'DLT645',
  'dnp3': 'DNP3',
  'ge': 'GE-SRTP',
  'ge_snpx': 'GE-SNPX',
  'EGD': 'GE-EGD',
  'iec101': 'IEC101',
  'iec104': 'IEC104',
  'modbus': 'MODBUS',
  'mysql': 'MYSQL',
  'MMS': 'MMS',
  'OPCDA': 'OPC',
  'opcua': 'OPC UA',
  'omron': 'OMRON',
  'pnio_cm': 'PNIO-CM',
  'rtsp': 'RTSP',
  's7_300': 'SIEMENS S7-300',
  's7_300_plus': 'SIEMENS S7-300 PLUS',
  'smart200': 'SIEMENS SMART 200',
  's5': 'SIEMENS S5',
  // 'eipcip': 'ENIP/CIP',
  'sanling': 'MITSUBISHI-FX ',
  'mitsubishi': 'MITSUBISHI-MN',
  'mqtt': 'MQTT',
  'custom': '自定义'
  
}
// 编辑中选择提示

const ruleTip = {
  'ab': 'AB的PLC 协议',
  'enip': 'EtherNet/IP 协议',
  'cip': '通用工业协议（Common Industrial Protocol，CIP）',
  'cipmb': '通用工业协议转发的modbus协议',
  'commserver': 'CommServer 协议',
  'cimplicity': 'Cimplicity 软件协议',
  'bacnet': '楼宇自动控制网络数据通讯协议BACNET协议',
  'cdt': '电力CDT协议',
  'dlt645': 'DLT645协议',
  'dnp3': 'DNP 3.0协议',
  'ge': 'GE-SRTP协议',
  'ge_snpx': 'GE-SNP-X协议',
  'EGD': 'GE PLC的EGD（enternet global data）协议',
  'iec101': 'IEC 60870-5-101协议',
  'iec104': 'IEC 60870-5-104协议',
  'modbus': 'MODBUS TCP协议',
  'mysql': 'MYSQL数据库通讯协议',
  'MMS': 'IEC61850-MMS协议',
  'OPCDA': 'OPC DA （OPC 数据访问协议）',
  'opcua': 'OPC UA协议',
  'omron': '欧姆龙（FINS）协议',
  'pnio_cm': 'PROFINET 协议 中IO控制协议',
  'rtsp': '实时流传输协议',
  's7_300': '西门子S7 300 PLC协议 可应用于wincc组态',
  's7_300_plus': '西门子 S7 300 PLUS协议',
  'smart200': '西门子Smart200 PLC协议',
  's5': '西门子 S5 PLC协议',
  // 'eipcip': 'ENIP/CIP',
  'sanling': '三菱fx协议',
  'mitsubishi': '三菱MelsecNet协议',
  'mqtt': 'mqtt协议',
  'custom': '自定义'
}
// 列表中展示用
const ruleShow = {
  'ab': 'AB',
  'enip': 'ENIP',
  'cip': 'CIP',
  'cipmb': 'CIP-MB',
  'commserver': 'COMMSERVER',
  'cimplicity': 'CIMPLICITY',
  'bacnet': 'BACNET',
  'cdt': 'CDT',
  'dlt645': 'DLT645',
  'dnp3': 'DNP3',
  'ge': 'GE-SRTP',
  'ge_snpx': 'GE-SNPX',
  'EGD': 'GE-EGD',
  'iec101': 'IEC101',
  'iec104': 'IEC104',
  'iec104_connect': 'IEC104 CONNECT',
  'modbus': 'MODBUS',
  'modbus_connect': 'MODBUS CONNECT',
  'mysql': 'MYSQL',
  'MMS': 'MMS',
  'OPCDA': 'OPC',
  'OPCDA_CONNECT': 'OPC CONNECT',
  'opcua': 'OPC UA',
  'omron': 'OMRON',
  'pnio_cm': 'PNIO-CM',
  'rtsp': 'RTSP',
  's7_300': 'SIEMENS S7-300',
  's7_300_connect': 'SIEMENS S7-300 CONNECT',
  's7_300_plus': 'SIEMENS S7-300 PLUS',
  'smart200': 'SIEMENS SMART 200',
  's5': 'SIEMENS S5',
  // 'eipcip': 'ENIP/CIP',
  'sanling': 'MITSUBISHI-FX ',
  'mitsubishi': 'MITSUBISHI-MN',
  'mqtt': 'MQTT',
  'custom': '自定义'
}
const code = {
  '0x00': 'cpu服务',
  '0xF0': '建立通讯',
  '0x04': '读寄存器',
  '0x05': '写寄存器',
  '0x1A': '上载开始',
  '0x1B': '上载中',
  '0x1C': '上载完成',
  '0x1D': '下装开始',
  '0x1E': '下装中',
  '0x1F': '下装完成',
  '0x28': '程序调用（启动、停止......）',
  '0x29': '停止plc'
}

const intervalList = {
  'P': 'P 区',
  'I': 'I 区',
  'Q': 'Q 区',
  'C': 'C 区',
  'T': 'T 区',
  'M': 'M 区',
  'DB': 'DB 区',
  'DI': 'DI 区',
  'L': 'L 区',
  'V': 'V 区'
}

const valueTypeList = {
  '0': 'NULL',
  '3': 'BIT',
  '4': 'BYTE/WORD/DWORD',
  '5': 'INTEGER',
  '6': 'DINTEGER',
  '7': 'REAL'
}

const valueTypeReList = {
  '0': 'NULL',
  '3': 'BIT',
  '4': 'BYTE/WORD/DWORD',
  '5': 'INTEGER',
  '6': 'DINTEGER',
  '7': 'REAL',
  '9': 'OCTET STRING',
  '17': 'NCK ADDRESS1',
  '18': 'NCK ADDRESS2'
}

const rangeList = {
  '0': '关',
  '1': '开',
  '2': '开关'
}

// modbus
const funcList = {
  '1': '读线圈',
  '2': '读输入离散量',
  '3': '读取保持寄存器',
  '4': '读输入寄存器',
  '5': '写单个线圈',
  '6': '写单个寄存器',
  '7': '读异常状态',
  '15': '写多个线圈',
  '16': '写多个寄存器',
  '17': '上报服务器信息',
  '20': '读文件记录',
  '21': '写文件记录',
  '23': '读写多个寄存器',
  '24': '读取管道队列',
  '43': '读设备识别码'
}

const iecFuncList = [
  { value: '45', label: '单点遥控' },
  { value: '46', label: '双点遥控' },
  { value: '47', label: '遥调' },
  { value: '48', label: '归一化设定值' },
  { value: '49', label: '标度化设定值' },
  { value: '50', label: '短浮点设定值' },
  { value: '51', label: '32比特串' },
  { value: '58', label: '单点遥控(带时标)' },
  { value: '59', label: '双点遥控(带时标)' },
  { value: '60', label: '遥调(带时标)' },
  { value: '61', label: '归一化设定值(带时标)' },
  { value: '62', label: '标度化设定值(带时标)' },
  { value: '63', label: '短浮点设定值(带时标)' },
  { value: '64', label: '32比特串(带时标)' },
  { value: '1', label: '01突发传送' },
  { value: '100', label: '总召唤' },
  { value: '101', label: '电能脉冲召唤' }
]

const iecFuncShowList = {
  '45': '单点遥控',
  '46': '双点遥控',
  '47': '遥调',
  '48': '归一化设定值',
  '49': '标度化设定值',
  '50': '短浮点设定值',
  '51': '32比特串',
  '58': '单点遥控(带时标)',
  '59': '双点遥控(带时标)',
  '60': '遥调(带时标)',
  '61': '归一化设定值(带时标)',
  '62': '标度化设定值(带时标)',
  '63': '短浮点设定值(带时标)',
  '64': '32比特串(带时标)',
  '1': '01突发传送',
  '100': '总召唤',
  '101': '电能脉冲召唤'
}

const iesTypeList = {
  '0': 'I 帧',
  '1': 'S 帧',
  '3': 'U 帧'
}

const actionList = {
  'accept': '允许',
  'alert': '告警',
  'deny': '阻断'
}

const actionList2 = {
  'accept': '允许',
  'alert': '告警'
}

const actionMysqlList = {
  'accept': '记录',
  'alert': '不记录'
}

const operateTypeList = {
  '0': '深度过滤',
  '1': '扫描防护',
  '2': '关联操作'
}

const writeRegFuncList = {
  '5': '写线圈',
  '6': '写寄存器'
}
const connectReadRegFuncList = {
  '1': '读线圈',
  '2': '读输入离散量',
  '3': '读取保持寄存器',
  '4': '读输入寄存器'
}

const opcValueTypeList = {
  'BOOL': 'BOOL',
  'SHORT': 'SHORT',
  'WORD': 'WORD',
  'LONG': 'LONG',
  'DWORD': 'DWORD',
  'FLOAT': 'FLOAT',
  'DOUBLE': 'DOUBLE',
  'STRING': 'STRING',
  'BYTE': 'BYTE',
  'UBYTE': 'UBYTE'
}

const opcOperateTypeList = {
  0: '深度过滤',
  1: '关联操作'
}

const acceptRangeList = {
  'all': '所有',
  'single': '单个'
}

const opcTypeList = {
  'add': '添加站点',
  'write': '写值'
}

const msgTypeList = ['HEL', 'ACK', 'ERR', 'OPN', 'MSG', 'CLO', 'ANY']

const serviceIdList = {
  'WriteGroup': '999999',
  'ReadGroup': '999998',
  'ReadRequest': '631',
  'WriteRequest': '673',
  'ServiceFault': '397',
  'FindServersRequest': '422',
  'FindServersResponse': '425',
  'FindServersOnNetworkRequest': '12208',
  'FindServersOnNetworkResponse': '12209',
  'GetEndpointsRequest': '428',
  'GetEndpointsResponse': '431',
  'RegisterServerRequest': '437',
  'RegisterServerResponse': '440',
  'RegisterServer2Request': '12211',
  'RegisterServer2Response': '12212',
  'OpenSecureChannelRequest': '446',
  'OpenSecureChannelResponse': '449',
  'CloseSecureChannelRequest': '452',
  'CloseSecureChannelResponse': '455',
  'CreateSessionRequest': '461',
  'CreateSessionResponse': '464',
  'ActivateSessionRequest': '467',
  'ActivateSessionResponse': '470',
  'CloseSessionRequest': '473',
  'CloseSessionResponse': '476',
  'CancelRequest': '479',
  'CancelResponse': '482',
  'AddNodesRequest': '488',
  'AddNodesResponse': '491',
  'AddReferencesRequest': '494',
  'AddReferencesResponse': '497',
  'DeleteNodesRequest': '500',
  'DeleteNodesResponse': '503',
  'DeleteReferencesRequest': '506',
  'DeleteReferencesResponse': '509',
  'BrowseRequest': '527',
  'BrowseResponse': '530',
  'BrowseNextRequest': '533',
  'BrowseNextResponse': '536',
  'TranslateBrowsePathsToNodeIdsRequest': '554',
  'TranslateBrowsePathsToNodeIdsResponse': '557',
  'RegisterNodesRequest': '560',
  'RegisterNodesResponse': '563',
  'UnregisterNodesRequest': '566',
  'UnregisterNodesResponse': '569',
  'QueryFirstRequest': '615',
  'QueryFirstResponse': '618',
  'QueryNextRequest': '621',
  'QueryNextResponse': '624',
  'ReadResponse': '634',
  'HistoryReadRequest': '664',
  'HistoryReadResponse': '667',
  'WriteResponse': '676',
  'HistoryUpdateRequest': '700',
  'HistoryUpdateResponse': '703',
  'CallRequest': '712',
  'CallResponse': '715',
  'CreateMonitoredItemsRequest': '751',
  'CreateMonitoredItemsResponse': '754',
  'ModifyMonitoredItemsRequest': '763',
  'ModifyMonitoredItemsResponse': '766',
  'SetMonitoringModeRequest': '769',
  'SetMonitoringModeResponse': '772',
  'SetTriggeringRequest': '775',
  'SetTriggeringResponse': '778',
  'DeleteMonitoredItemsRequest': '781',
  'DeleteMonitoredItemsResponse': '784',
  'CreateSubscriptionRequest': '787',
  'CreateSubscriptionResponse': '790',
  'ModifySubscriptionRequest': '793',
  'ModifySubscriptionResponse': '796',
  'SetPublishingModeRequest': '799',
  'SetPublishingModeResponse': '802',
  'PublishRequest': '826',
  'PublishResponse': '829',
  'RepublishRequest': '832',
  'RepublishResponse': '835',
  'TransferSubscriptionsRequest': '841',
  'TransferSubscriptionsResponse': '844',
  'DeleteSubscriptionsRequest': '847',
  'DeleteSubscriptionsResponse': '850',
  'TestStackRequest': '410',
  'TestStackResponse': '413',
  'TestStackExRequest': '416',
  'TestStackExResponse': '419',
  'ServiceFault(XML Encoding)': '396',
  'FindServersRequest(XML Encoding)': '421',
  'FindServersResponse(XML Encoding)': '424',
  'FindServersOnNetworkRequest(XML Encoding)': '12196',
  'FindServersOnNetworkResponse(XML Encoding)': '12197',
  'GetEndpointsRequest(XML Encoding)': '427',
  'GetEndpointsResponse(XML Encoding)': '430',
  'RegisterServerRequest(XML Encoding)': '436',
  'RegisterServerResponse(XML Encoding)': '439',
  'RegisterServer2Request(XML Encoding)': '12199',
  'RegisterServer2Response(XML Encoding)': '12200',
  'OpenSecureChannelRequest(XML Encoding)': '445',
  'OpenSecureChannelResponse(XML Encoding)': '448',
  'CloseSecureChannelRequest(XML Encoding)': '451',
  'CloseSecureChannelResponse(XML Encoding)': '454',
  'CreateSessionRequest(XML Encoding)': '460',
  'CreateSessionResponse(XML Encoding)': '463',
  'ActivateSessionRequest(XML Encoding)': '466',
  'ActivateSessionResponse(XML Encoding)': '469',
  'CloseSessionRequest(XML Encoding)': '472',
  'CloseSessionResponse(XML Encoding)': '475',
  'CancelRequest(XML Encoding)': '478',
  'CancelResponse(XML Encoding)': '481',
  'AddNodesRequest(XML Encoding)': '487',
  'AddNodesResponse(XML Encoding)': '490',
  'AddReferencesRequest(XML Encoding)': '493',
  'AddReferencesResponse(XML Encoding)': '496',
  'DeleteNodesRequest(XML Encoding)': '499',
  'DeleteNodesResponse(XML Encoding)': '502',
  'DeleteReferencesRequest(XML Encoding)': '505',
  'DeleteReferencesResponse(XML Encoding)': '508',
  'BrowseRequest(XML Encoding)': '526',
  'BrowseResponse(XML Encoding)': '529',
  'BrowseNextRequest(XML Encoding)': '532',
  'BrowseNextResponse(XML Encoding)': '535',
  'TranslateBrowsePathsToNodeIdsReques(XML Encoding)': '553',
  'TranslateBrowsePathsToNodeIdsResponse(XML Encoding)': '556',
  'RegisterNodesRequest(XML Encoding)': '559',
  'RegisterNodesResponse(XML Encoding)': '562',
  'UnregisterNodesRequest(XML Encoding)': '565',
  'UnregisterNodesResponse(XML Encoding)': '568',
  'QueryFirstRequest(XML Encoding)': '614',
  'QueryFirstResponse(XML Encoding)': '617',
  'QueryNextRequest(XML Encoding)': '620',
  'QueryNextResponse(XML Encoding)': '623',
  'ReadRequest(XML Encoding)': '630',
  'ReadResponse(XML Encoding)': '633',
  'HistoryReadRequest(XML Encoding)': '663',
  'HistoryReadResponse(XML Encoding)': '666',
  'WriteRequest(XML Encoding)': '672',
  'WriteResponse(XML Encoding)': '675',
  'HistoryUpdateRequest(XML Encoding)': '699',
  'HistoryUpdateResponse(XML Encoding)': '702',
  'CallRequest(XML Encoding)': '711',
  'CallResponse(XML Encoding)': '714',
  'CreateMonitoredItemsRequest(XML Encoding)': '750',
  'CreateMonitoredItemsResponse(XML Encoding)': '753',
  'ModifyMonitoredItemsRequest(XML Encoding)': '762',
  'ModifyMonitoredItemsResponse(XML Encoding)': '765',
  'SetMonitoringModeRequest(XML Encoding)': '768',
  'SetMonitoringModeResponse(XML Encoding)': '771',
  'SetTriggeringRequest(XML Encoding)': '774',
  'SetTriggeringResponse(XML Encoding)': '777',
  'DeleteMonitoredItemsRequest(XML Encoding)': '780',
  'DeleteMonitoredItemsResponse(XML Encoding)': '783',
  'CreateSubscriptionRequest(XML Encoding)': '786',
  'CreateSubscriptionResponse(XML Encoding)': '789',
  'ModifySubscriptionRequest(XML Encoding)': '792',
  'ModifySubscriptionResponse(XML Encoding)': '795',
  'SetPublishingModeRequest(XML Encoding)': '798',
  'SetPublishingModeResponse(XML Encoding)': '801',
  'PublishRequest(XML Encoding)': '825',
  'PublishResponse(XML Encoding)': '828',
  'RepublishRequest(XML Encoding)': '831',
  'RepublishResponse(XML Encoding)': '834',
  'TransferSubscriptionsRequest(XML Encoding)': '840',
  'TransferSubscriptionsResponse(XML Encoding)': '843',
  'DeleteSubscriptionsRequest(XML Encoding)': '846',
  'DeleteSubscriptionsResponse(XML Encoding)': '849',
  'TestStackRequest(XML Encoding)': '409',
  'TestStackResponse(XML Encoding)': '412',
  'TestStackExRequest(XML Encoding)': '415',
  'TestStackExResponse(XML Encoding)': '418'
}

const serviceIdShowList = {
  '999999': 'WriteGroup',
  '999998': 'ReadGroup',
  '631': 'ReadRequest',
  '673': 'WriteRequest',
  '397': 'ServiceFault',
  '422': 'FindServersRequest',
  '425': 'FindServersResponse',
  '12208': 'FindServersOnNetworkRequest',
  '12209': 'FindServersOnNetworkResponse',
  '428': 'GetEndpointsRequest',
  '431': 'GetEndpointsResponse',
  '437': 'RegisterServerRequest',
  '440': 'RegisterServerResponse',
  '12211': 'RegisterServer2Request',
  '12212': 'RegisterServer2Response',
  '446': 'OpenSecureChannelRequest',
  '449': 'OpenSecureChannelResponse',
  '452': 'CloseSecureChannelRequest',
  '455': 'CloseSecureChannelResponse',
  '461': 'CreateSessionRequest',
  '464': 'CreateSessionResponse',
  '467': 'ActivateSessionRequest',
  '470': 'ActivateSessionResponse',
  '473': 'CloseSessionRequest',
  '476': 'CloseSessionResponse',
  '479': 'CancelRequest',
  '482': 'CancelResponse',
  '488': 'AddNodesRequest',
  '491': 'AddNodesResponse',
  '494': 'AddReferencesRequest',
  '497': 'AddReferencesResponse',
  '500': 'DeleteNodesRequest',
  '503': 'DeleteNodesResponse',
  '506': 'DeleteReferencesRequest',
  '509': 'DeleteReferencesResponse',
  '527': 'BrowseRequest',
  '530': 'BrowseResponse',
  '533': 'BrowseNextRequest',
  '536': 'BrowseNextResponse',
  '554': 'TranslateBrowsePathsToNodeIdsRequest',
  '557': 'TranslateBrowsePathsToNodeIdsResponse',
  '560': 'RegisterNodesRequest',
  '563': 'RegisterNodesResponse',
  '566': 'UnregisterNodesRequest',
  '569': 'UnregisterNodesResponse',
  '615': 'QueryFirstRequest',
  '618': 'QueryFirstResponse',
  '621': 'QueryNextRequest',
  '624': 'QueryNextResponse',
  '634': 'ReadResponse',
  '664': 'HistoryReadRequest',
  '667': 'HistoryReadResponse',
  '676': 'WriteResponse',
  '700': 'HistoryUpdateRequest',
  '703': 'HistoryUpdateResponse',
  '712': 'CallRequest',
  '715': 'CallResponse',
  '751': 'CreateMonitoredItemsRequest',
  '754': 'CreateMonitoredItemsResponse',
  '763': 'ModifyMonitoredItemsRequest',
  '766': 'ModifyMonitoredItemsResponse',
  '769': 'SetMonitoringModeRequest',
  '772': 'SetMonitoringModeResponse',
  '775': 'SetTriggeringRequest',
  '778': 'SetTriggeringResponse',
  '781': 'DeleteMonitoredItemsRequest',
  '784': 'DeleteMonitoredItemsResponse',
  '787': 'CreateSubscriptionRequest',
  '790': 'CreateSubscriptionResponse',
  '793': 'ModifySubscriptionRequest',
  '796': 'ModifySubscriptionResponse',
  '799': 'SetPublishingModeRequest',
  '802': 'SetPublishingModeResponse',
  '826': 'PublishRequest',
  '829': 'PublishResponse',
  '832': 'RepublishRequest',
  '835': 'RepublishResponse',
  '841': 'TransferSubscriptionsRequest',
  '844': 'TransferSubscriptionsResponse',
  '847': 'DeleteSubscriptionsRequest',
  '850': 'DeleteSubscriptionsResponse',
  '410': 'TestStackRequest',
  '413': 'TestStackResponse',
  '416': 'TestStackExRequest',
  '419': 'TestStackExResponse',
  '396': 'ServiceFault(XML Encoding)',
  '421': 'FindServersRequest(XML Encoding)',
  '424': 'FindServersResponse(XML Encoding)',
  '12196': 'FindServersOnNetworkRequest(XML Encoding)',
  '12197': 'FindServersOnNetworkResponse(XML Encoding)',
  '427': 'GetEndpointsRequest(XML Encoding)',
  '430': 'GetEndpointsResponse(XML Encoding)',
  '436': 'RegisterServerRequest(XML Encoding)',
  '439': 'RegisterServerResponse(XML Encoding)',
  '12199': 'RegisterServer2Request(XML Encoding)',
  '12200': 'RegisterServer2Response(XML Encoding)',
  '445': 'OpenSecureChannelRequest(XML Encoding)',
  '448': 'OpenSecureChannelResponse(XML Encoding)',
  '451': 'CloseSecureChannelRequest(XML Encoding)',
  '454': 'CloseSecureChannelResponse(XML Encoding)',
  '460': 'CreateSessionRequest(XML Encoding)',
  '463': 'CreateSessionResponse(XML Encoding)',
  '466': 'ActivateSessionRequest(XML Encoding)',
  '469': 'ActivateSessionResponse(XML Encoding)',
  '472': 'CloseSessionRequest(XML Encoding)',
  '475': 'CloseSessionResponse(XML Encoding)',
  '478': 'CancelRequest(XML Encoding)',
  '481': 'CancelResponse(XML Encoding)',
  '487': 'AddNodesRequest(XML Encoding)',
  '490': 'AddNodesResponse(XML Encoding)',
  '493': 'AddReferencesRequest(XML Encoding)',
  '496': 'AddReferencesResponse(XML Encoding)',
  '499': 'DeleteNodesRequest(XML Encoding)',
  '502': 'DeleteNodesResponse(XML Encoding)',
  '505': 'DeleteReferencesRequest(XML Encoding)',
  '508': 'DeleteReferencesResponse(XML Encoding)',
  '526': 'BrowseRequest(XML Encoding)',
  '529': 'BrowseResponse(XML Encoding)',
  '532': 'BrowseNextRequest(XML Encoding)',
  '535': 'BrowseNextResponse(XML Encoding)',
  '553': 'TranslateBrowsePathsToNodeIdsReques(XML Encoding)',
  '556': 'TranslateBrowsePathsToNodeIdsResponse(XML Encoding)',
  '559': 'RegisterNodesRequest(XML Encoding)',
  '562': 'RegisterNodesResponse(XML Encoding)',
  '565': 'UnregisterNodesRequest(XML Encoding)',
  '568': 'UnregisterNodesResponse(XML Encoding)',
  '614': 'QueryFirstRequest(XML Encoding)',
  '617': 'QueryFirstResponse(XML Encoding)',
  '620': 'QueryNextRequest(XML Encoding)',
  '623': 'QueryNextResponse(XML Encoding)',
  '630': 'ReadRequest(XML Encoding)',
  '633': 'ReadResponse(XML Encoding)',
  '663': 'HistoryReadRequest(XML Encoding)',
  '666': 'HistoryReadResponse(XML Encoding)',
  '672': 'WriteRequest(XML Encoding)',
  '675': 'WriteResponse(XML Encoding)',
  '699': 'HistoryUpdateRequest(XML Encoding)',
  '702': 'HistoryUpdateResponse(XML Encoding)',
  '711': 'CallRequest(XML Encoding)',
  '714': 'CallResponse(XML Encoding)',
  '750': 'CreateMonitoredItemsRequest(XML Encoding)',
  '753': 'CreateMonitoredItemsResponse(XML Encoding)',
  '762': 'ModifyMonitoredItemsRequest(XML Encoding)',
  '765': 'ModifyMonitoredItemsResponse(XML Encoding)',
  '768': 'SetMonitoringModeRequest(XML Encoding)',
  '771': 'SetMonitoringModeResponse(XML Encoding)',
  '774': 'SetTriggeringRequest(XML Encoding)',
  '777': 'SetTriggeringResponse(XML Encoding)',
  '780': 'DeleteMonitoredItemsRequest(XML Encoding)',
  '783': 'DeleteMonitoredItemsResponse(XML Encoding)',
  '786': 'CreateSubscriptionRequest(XML Encoding)',
  '789': 'CreateSubscriptionResponse(XML Encoding)',
  '792': 'ModifySubscriptionRequest(XML Encoding)',
  '795': 'ModifySubscriptionResponse(XML Encoding)',
  '798': 'SetPublishingModeRequest(XML Encoding)',
  '801': 'SetPublishingModeResponse(XML Encoding)',
  '825': 'PublishRequest(XML Encoding)',
  '828': 'PublishResponse(XML Encoding)',
  '831': 'RepublishRequest(XML Encoding)',
  '834': 'RepublishResponse(XML Encoding)',
  '840': 'TransferSubscriptionsRequest(XML Encoding)',
  '843': 'TransferSubscriptionsResponse(XML Encoding)',
  '846': 'DeleteSubscriptionsRequest(XML Encoding)',
  '849': 'DeleteSubscriptionsResponse(XML Encoding)',
  '409': 'TestStackRequest(XML Encoding)',
  '412': 'TestStackResponse(XML Encoding)',
  '415': 'TestStackExRequest(XML Encoding)',
  '418': 'TestStackExResponse(XML Encoding)'
}

const msgTypeShowList = ['OPN', 'MSG', 'CLO', 'ANY']

const nodeIdMaskList = {
  '0': '整型',
  '1': '字符串'
}

const dataMaskList = {
  '1': 'bool',
  '2': 'sbyte',
  '3': 'byte',
  '4': 'int16',
  '5': 'uint16',
  '6': 'int32',
  '7': 'uint32',
  '8': 'int64',
  '9': 'uint64',
  '10': 'float',
  '11': 'double'
}

const dataTypeList = {
  'cip_bool': 'cip_bool',
  'cip_sint': 'cip_sint',
  'cip_int': 'cip_int',
  'cip_dint': 'cip_dint',
  'cip_lint': 'cip_lint',
  'cip_usint': 'cip_usint',
  'cip_uint': 'cip_uint',
  'cip_udint': 'cip_udint',
  'cip_ulint': 'cip_ulint',
  'cip_real': 'cip_real',
  'cip_lreal': 'cip_lreal',
  'cip_byte': 'cip_byte',
  'cip_word': 'cip_word',
  'cip_dword': 'cip_dword',
  'cip_lword': 'cip_lword'
}

const readWriteTypeList = {
  'read': '读',
  'write': '写'
}

const tagTypeList = {
  'single_point': '单点',
  'array_point': '数组点'
}

const communicationTypeList = {
  '0x0000': '版本请求',
  '0x0002': '数据请求',
  '0x0008': '握手请求'
}

const registerTypeList = {
  '0x08': '寄存器内存(%R)',
  '0x0a': '模拟输入内存(%AI)',
  '0x0c': '模拟输出内存(%AQ)',
  '0x46': '离散输入内存(%I)',
  '0x48': '离散输出内存(%Q)',
  '0x4a': '临时离散内存(%T)',
  '0x4c': '内部离散内存(%M)',
  '0x56': '离散全部数据表内存(%G)',
  '0xc4': '子内存(%W)'
}

const dnp3FuncList = {
  '0x02': '写请求',
  '0x04': '操作',
  '0x05': '直接操作',
  '0x06': '直接操作-无确认'
}

const smart200FuncList = {
  'read': 'Read',
  'write': 'Write'
}

const registerIntervalList = {
  'M': 'M 区',
  'I': 'I 区',
  'Q': 'Q 区',
  'PI': 'PI 区',
  'PQ': 'PQ 区',
  'C': 'C 区',
  'T': 'T 区',
  'DB': 'DB 区'
}

const s7PlusIntervalList = {
  '0x50': 'I 区',
  '0x51': 'Q 区',
  '0x52': 'M 区',
  '0x8a': 'DB 区'
}

const s7PlusFuncList = {
  '0x054c': '读',
  '0x0542': '写'
}

const accessModeList = {
  'absolute_access': '绝对访问',
  'character_access': '字符访问'
}

const s5List = {
  'DB': 'DB 区',
  'MB': 'MB 区',
  'EB': 'EB 区',
  'AB': 'AB 区',
  'PB': 'PB 区',
  'ZB': 'ZB 区',
  'TB': 'TB 区',
  'BS': 'BS 区',
  'AS': 'AS 区',
  'DX': 'DX 区',
  'QB': 'QB 区'
}

const memserviceTypeList = {
  'R_word': '%R,word',
  'AI_word': '%AI,word',
  'AQ_word': '%AQ,word',
  'I_bit': '%I,bit',
  'I_byte': '%I,byte',
  'Q_bit': '%Q,bit',
  'Q_byte': '%Q,byte',
  'T_bit': '%T,bit',
  'T_byte': '%T,byte',
  'M_bit': '%M,bit',
  'M_byte': '%M,byte',
  'SA_bit': '%SA,bit',
  'SA_byte': '%SA,byte',
  'SB_bit': '%SB,bit',
  'SB_byte': '%SB,byte',
  'SC_bit': '%SC,bit',
  'SC_byte': '%SC,byte',
  'S_bit': '%S,bit',
  'S_byte': '%S,byte',
  'G_bit': '%G,bit',
  'G_byte': '%G,byte'
}

const dataAreaList = {
  'CIO': 'CIO Area',
  'WR': 'Work Area',
  'HR': 'Holding Area',
  'AR': 'Auxiliary Area',
  'DM': 'DM Area'
}

const bacnetFuncList = {
  'read': '条件读属性服务',
  'Read_multiple': '读多个属性服务',
  'write': '写属性服务',
  'Write_multiple': '写多个属性服务'
}

const sanlingFuncList = {
  '1': '开关量输入X0-Y255', // 0-255
  '2': '开关量输出Y0-Y207', // 0-207
  '3': '辅助继电器M0-M3071', // 0-3071
  '4': '状态寄存器SO-S999', // 0-999
  '5': '定时器节点TSO-TS255', // 0-255
  '6': '计时器节点CS0-CS255', // 0-255
  '7': '数据寄存器D0-D7999', // 0-7999
  '8': '数据寄存器D8000-D8205', // 8000-8205
  '9': '特殊辅助继电器M8000-M8205', // 8000-8205
  '10': '定时器当前值T0-T255', // 0-255
  '11': '计数器当前值C0-C199', // 0-199
  '12': '计数器当前值C200-C255' // 200-255
}

const isWriteList = {
  '0': '读',
  '1': '写'
}

const mitsubishiFuncList = {
  '1': '输入继电器(位)X',
  '2': '输出继电器(位)Y',
  '3': '内部继电器(位)M',
  '4': '锁存继电器(位)L',
  '5': '报警器(位)F',
  '6': '边沿继电器(位)V',
  '7': '链接继电器(位)B',
  '8': '数据寄存器(字)W',
  '9': '链接寄存器(字)W',
  '10': '定时器触点(位)TS',
  '11': '定时器线圈(位)TC',
  '12': '定时器当前值(字)TN',
  '13': '累计定时器触点(位)SS',
  '14': '累计定时器线圈(位)SC',
  '15': '累计定时器当前值(字)SN',
  '16': '计数器触点(位)CS',
  '17': '计数器线圈(位)CC',
  '18': '计数器当前值字)CN',
  '19': '链接特殊继电器(位)SB',
  '20': '链接特殊寄存器(字)SW',
  '21': '文件寄存器(字)R',
  '22': '文件寄存器(字)ZR'
}

const frameList = {
  'control0': '遥控0',
  'control1': '遥控1',
  'control2': '遥控2',
  'adjustment': '遥调'
}

const operationList = {
  'energy': '电能量数据',
  'maxnuinm-demand': '最大需量数据',
  'time-of-maxnium-demand': '最大需量发生时间数据',
  'variable': '变量数据',
  'parameter': '参变量数据',
  'timing': '广播校时',
  'set-slave-address': '写设备地址',
  'modify-password': '修改密码',
  'modify-communicate-rate': '修改通讯速率'
}

const applyVersionList = {
  'tr1-ca1-ia2': 'TR1-CA1-IA2',
  'tr1-ca2-ia2': 'TR1-CA2-IA2'
}

const controlList = {
  'single-control': '单点控制',
  'double-control': '双点控制',
  'adjustment': '遥调',
  'normalization': '归一化设定值',
  'sale': '标度化设定值',
  'short-float': '短浮点设定值',
  '32byte-string': '32比特字符串'
}

const enableList = {
  'enable': '开',
  'disable': '关'
}

const pniocmBlockTypeList = [
  { 'value': -1, 'label': 'any' },
  { 'value': 0, 'label': 'Reserved' },
  { 'value': 1, 'label': 'Alarm Notification High' },
  { 'value': 2, 'label': 'Alarm Notification Low' },
  { 'value': 8, 'label': 'IODWriteReqHeader' },
  { 'value': 32776, 'label': 'IODWriteResHeader' },
  { 'value': 9, 'label': 'IODReadReqHeader' },
  { 'value': 32777, 'label': 'IODReadResHeader' },
  { 'value': 18, 'label': 'ExpectedIdentificationData' },
  { 'value': 19, 'label': 'RealIdentificationData' },
  { 'value': 20, 'label': 'SubstituteValue' },
  { 'value': 21, 'label': 'RecordInputDataObjectElement' },
  { 'value': 22, 'label': 'RecordOutputDataObjectElement' },
  { 'value': 23, 'label': 'reserved' },
  { 'value': 24, 'label': 'ARData' },
  { 'value': 25, 'label': 'LogData' },
  { 'value': 26, 'label': 'APIData' },
  { 'value': 27, 'label': 'SRLData' },
  { 'value': 32, 'label': 'I&M0' },
  { 'value': 33, 'label': 'I&M1' },
  { 'value': 34, 'label': 'I&M2' },
  { 'value': 35, 'label': 'I&M3' },
  { 'value': 36, 'label': 'I&M4' },
  { 'value': 37, 'label': 'I&M5' },
  { 'value': 38, 'label': 'I&M6' },
  { 'value': 39, 'label': 'I&M7' },
  { 'value': 40, 'label': 'I&M8' },
  { 'value': 41, 'label': 'I&M9' },
  { 'value': 42, 'label': 'I&M10' },
  { 'value': 43, 'label': 'I&M11' },
  { 'value': 44, 'label': 'I&M12' },
  { 'value': 45, 'label': 'I&M13' },
  { 'value': 46, 'label': 'I&M14' },
  { 'value': 47, 'label': 'I&M15' },
  { 'value': 48, 'label': 'I&M0FilterDataSubmodul' },
  { 'value': 49, 'label': 'I&M0FilterDataModul' },
  { 'value': 50, 'label': 'I&M0FilterDataDevice' },
  { 'value': 51, 'label': 'Reserved' },
  { 'value': 52, 'label': 'I&M5Data' },
  { 'value': 53, 'label': 'AssetManagementData' },
  { 'value': 54, 'label': 'AM_FullInformation' },
  { 'value': 55, 'label': 'AM_HardwareOnlyInformation' },
  { 'value': 56, 'label': 'AM_FirmwareOnlyInformation' },
  { 'value': 32769, 'label': 'Alarm Ack High' },
  { 'value': 32770, 'label': 'Alarm Ack Low' },
  { 'value': 257, 'label': 'ARBlockReq' },
  { 'value': 33025, 'label': 'ARBlockRes' },
  { 'value': 258, 'label': 'IOCRBlockReq' },
  { 'value': 33026, 'label': 'IOCRBlockRes' },
  { 'value': 259, 'label': 'AlarmCRBlockReq' },
  { 'value': 33027, 'label': 'AlarmCRBlockRes' },
  { 'value': 260, 'label': 'ExpectedSubmoduleBlockReq' },
  { 'value': 33028, 'label': 'ModuleDiffBlock' },
  { 'value': 261, 'label': 'PrmServerBlockReq' },
  { 'value': 33029, 'label': 'PrmServerBlockRes' },
  { 'value': 262, 'label': 'MCRBlockReq' },
  { 'value': 33030, 'label': 'ARServerBlock' },
  { 'value': 263, 'label': 'SubFrameBlock' },
  { 'value': 264, 'label': 'ARVendorBlockReq' },
  { 'value': 33032, 'label': 'ARVendorBlockRes' },
  { 'value': 265, 'label': 'IRInfoBlock' },
  { 'value': 266, 'label': 'SRInfoBlock' },
  { 'value': 267, 'label': 'ARFSUBlock' },
  { 'value': 268, 'label': 'RSInfoBlock' },
  { 'value': 272, 'label': 'IODControlReq Prm End.req' },
  { 'value': 33040, 'label': 'IODControlRes Prm End.rsp' },
  { 'value': 273, 'label': 'IODControlReq Prm End.req' },
  { 'value': 33041, 'label': 'IODControlRes Prm End.rsp' },
  { 'value': 274, 'label': 'IOXBlockReq Application Ready.req' },
  { 'value': 33042, 'label': 'IOXBlockRes Application Ready.rsp' },
  { 'value': 275, 'label': 'IOXBlockReq Application Ready.req' },
  { 'value': 33043, 'label': 'IOXBlockRes Application Ready.rsp' },
  { 'value': 276, 'label': 'IODReleaseReq' },
  { 'value': 33044, 'label': 'IODReleaseRes' },
  { 'value': 277, 'label': 'ARRPCServerBlockReq' },
  { 'value': 33045, 'label': 'ARRPCServerBlockRes' },
  { 'value': 278, 'label': 'IOXControlReq Ready for Companion.req' },
  { 'value': 33046, 'label': 'IOXControlRes Ready for Companion.rsp' },
  { 'value': 279, 'label': 'IOXControlReq Ready for RT_CLASS_3.req' },
  { 'value': 33047, 'label': 'IOXControlRes Ready for RT_CLASS_3.rsp' },
  { 'value': 280, 'label': 'ControlBlockPrmBegin' },
  { 'value': 281, 'label': 'SubmoduleListBlock' },
  { 'value': 33048, 'label': 'ControlBlockPrmBeginRes' },
  { 'value': 512, 'label': 'PDPortDataCheck' },
  { 'value': 513, 'label': 'PDevData' },
  { 'value': 514, 'label': 'PDPortDataAdjust' },
  { 'value': 515, 'label': 'PDSyncData' },
  { 'value': 516, 'label': 'IsochronousModeData' },
  { 'value': 517, 'label': 'PDIRData' },
  { 'value': 518, 'label': 'PDIRGlobalData' },
  { 'value': 519, 'label': 'PDIRFrameData' },
  { 'value': 520, 'label': 'PDIRBeginEndData' },
  { 'value': 521, 'label': 'AdjustDomainBoundary' },
  { 'value': 522, 'label': 'CheckPeers' },
  { 'value': 523, 'label': 'CheckLineDelay' },
  { 'value': 524, 'label': 'Checking MAUType' },
  { 'value': 526, 'label': 'Adjusting MAUType' },
  { 'value': 527, 'label': 'PDPortDataReal' },
  { 'value': 528, 'label': 'AdjustMulticastBoundary' },
  { 'value': 529, 'label': 'PDInterfaceMrpDataAdjust' },
  { 'value': 530, 'label': 'PDInterfaceMrpDataReal' },
  { 'value': 531, 'label': 'PDInterfaceMrpDataCheck' },
  { 'value': 532, 'label': 'PDPortMrpDataAdjust' },
  { 'value': 533, 'label': 'PDPortMrpDataReal' },
  { 'value': 534, 'label': 'Media redundancy manager parameters' },
  { 'value': 535, 'label': 'Media redundancy client parameters' },
  { 'value': 536, 'label': 'Media redundancy RT mode for manager' },
  { 'value': 537, 'label': 'Media redundancy ring state data' },
  { 'value': 538, 'label': 'Media redundancy RT ring state data' },
  { 'value': 539, 'label': 'Adjust LinkState' },
  { 'value': 540, 'label': 'Checking LinkState' },
  { 'value': 541, 'label': 'Media redundancy RT mode for clients' },
  { 'value': 542, 'label': 'CheckSyncDifference' },
  { 'value': 543, 'label': 'CheckMAUTypeDifference' },
  { 'value': 544, 'label': 'PDPortFODataReal' },
  { 'value': 545, 'label': 'Reading real fiber optic manufacturerspecific data' },
  { 'value': 546, 'label': 'PDPortFODataAdjust' },
  { 'value': 547, 'label': 'PDPortFODataCheck' },
  { 'value': 548, 'label': 'Adjust PeerToPeerBoundary' },
  { 'value': 549, 'label': 'Adjust DCPBoundary' },
  { 'value': 550, 'label': 'Adjust PreambleLength' },
  { 'value': 551, 'label': 'CheckMAUType-Extension' },
  { 'value': 552, 'label': 'Reading real fiber optic diagnosis data' },
  { 'value': 553, 'label': 'AdjustMAUType-Extension' },
  { 'value': 554, 'label': 'PDIRSubframeData' },
  { 'value': 555, 'label': 'SubframeBlock' },
  { 'value': 560, 'label': 'PDNCDataCheck' },
  { 'value': 561, 'label': 'MrpInstanceDataAdjust' },
  { 'value': 562, 'label': 'MrpInstanceDataReal' },
  { 'value': 563, 'label': 'MrpInstanceDataCheck' },
  { 'value': 576, 'label': 'PDInterfaceDataReal' },
  { 'value': 592, 'label': 'PDInterfaceAdjust' },
  { 'value': 593, 'label': 'PDPortStatistic' },
  { 'value': 1024, 'label': 'MultipleBlockHeader' },
  { 'value': 1025, 'label': 'COContainerContent' },
  { 'value': 1280, 'label': 'RecordDataReadQuery' },
  { 'value': 1536, 'label': 'FSHello' },
  { 'value': 1537, 'label': 'FSParameterBlock' },
  { 'value': 1544, 'label': 'PDInterfaceFSUDataAdjust' },
  { 'value': 1545, 'label': 'ARFSUDataAdjust' },
  { 'value': 1792, 'label': 'AutoConfiguration' },
  { 'value': 1793, 'label': 'AutoConfiguration Communication' },
  { 'value': 1794, 'label': 'AutoConfiguration Configuration' },
  { 'value': 2064, 'label': 'PE_EntityFilterData' },
  { 'value': 2065, 'label': 'PE_EntityStatusData' },
  { 'value': 2304, 'label': 'RS_AdjustObserver' },
  { 'value': 2305, 'label': 'RS_GetEvent' },
  { 'value': 2306, 'label': 'RS_AckEvent' },
  { 'value': 45136, 'label': 'Ext-PLL Control / RTC+RTA SyncID 0 (EDD)' },
  { 'value': 45137, 'label': 'Ext-PLL Control / RTA SyncID 1 (GSY)' },
  { 'value': 45168, 'label': 'OHA Info (OHA)' },
  { 'value': 3840, 'label': 'MaintenanceItem' },
  { 'value': 3841, 'label': 'Upload selected Records within Upload&RetrievalItem' },
  { 'value': 3842, 'label': 'iParameterItem' },
  { 'value': 3843, 'label': 'Retrieve selected Records within Upload&RetrievalItem' },
  { 'value': 3844, 'label': 'Retrieve all Records within Upload&RetrievalItem' },
  { 'value': 3845, 'label': 'Signal a PE_OperationalMode change within PE_EnergySavingStatus' }
]

const pniocmIndexList = [
  { 'value': -1, 'label': 'any' },
  { 'value': 256, 'label': 'PROFISafe' },
  { 'value': 32768, 'label': 'ExpectedIdentificationData for one subslot' },
  { 'value': 32769, 'label': 'RealIdentificationData for one subslot' },
  { 'value': 32778, 'label': 'Diagnosis in channel coding for one subslot' },
  { 'value': 32779, 'label': 'Diagnosis in all codings for one subslot' },
  { 'value': 32780, 'label': 'Diagnosis, Maintenance, Qualified and Status for one subslot' },
  { 'value': 32784, 'label': 'Maintenance required in channel coding for one subslot' },
  { 'value': 32785, 'label': 'Maintenance demanded in channel coding for one subslot' },
  { 'value': 32786, 'label': 'Maintenance required in all codings for one subslot' },
  { 'value': 32787, 'label': 'Maintenance demanded in all codings for one subslot' },
  { 'value': 32798, 'label': 'SubstituteValues for one subslot' },
  { 'value': 32808, 'label': 'RecordInputDataObjectElement for one subslot' },
  { 'value': 32809, 'label': 'RecordOutputDataObjectElement for one subslot' },
  { 'value': 32810, 'label': 'PDPortDataReal for one subslot' },
  { 'value': 32811, 'label': 'PDPortDataCheck for one subslot' },
  { 'value': 32812, 'label': 'PDIRData for one subslot' },
  { 'value': 32813, 'label': 'Expected PDSyncData for one subslot with SyncID value 0' },
  { 'value': 32815, 'label': 'PDPortDataAdjust for one subslot' },
  { 'value': 32816, 'label': 'IsochronousModeData for one subslot' },
  { 'value': 32817, 'label': 'Expected PDSyncData for one subslot with SyncID value 1' },
  { 'value': 32818, 'label': 'Expected PDSyncData for one subslot with SyncID value 2' },
  { 'value': 32819, 'label': 'Expected PDSyncData for one subslot with SyncID value 3' },
  { 'value': 32820, 'label': 'Expected PDSyncData for one subslot with SyncID value 4' },
  { 'value': 32821, 'label': 'Expected PDSyncData for one subslot with SyncID value 5' },
  { 'value': 32822, 'label': 'Expected PDSyncData for one subslot with SyncID value 6' },
  { 'value': 32823, 'label': 'Expected PDSyncData for one subslot with SyncID value 7' },
  { 'value': 32824, 'label': 'Expected PDSyncData for one subslot with SyncID value 8' },
  { 'value': 32825, 'label': 'Expected PDSyncData for one subslot with SyncID value 9' },
  { 'value': 32826, 'label': 'Expected PDSyncData for one subslot with SyncID value 10' },
  { 'value': 32827, 'label': 'Expected PDSyncData for one subslot with SyncID value 11' },
  { 'value': 32828, 'label': 'Expected PDSyncData for one subslot with SyncID value 12' },
  { 'value': 32829, 'label': 'Expected PDSyncData for one subslot with SyncID value 13' },
  { 'value': 32830, 'label': 'Expected PDSyncData for one subslot with SyncID value 14' },
  { 'value': 32831, 'label': 'Expected PDSyncData for one subslot with SyncID value 15' },
  { 'value': 32832, 'label': 'Expected PDSyncData for one subslot with SyncID value 16' },
  { 'value': 32833, 'label': 'Expected PDSyncData for one subslot with SyncID value 17' },
  { 'value': 32834, 'label': 'Expected PDSyncData for one subslot with SyncID value 18' },
  { 'value': 32835, 'label': 'Expected PDSyncData for one subslot with SyncID value 19' },
  { 'value': 32836, 'label': 'Expected PDSyncData for one subslot with SyncID value 20' },
  { 'value': 32837, 'label': 'Expected PDSyncData for one subslot with SyncID value 21' },
  { 'value': 32838, 'label': 'Expected PDSyncData for one subslot with SyncID value 22' },
  { 'value': 32839, 'label': 'Expected PDSyncData for one subslot with SyncID value 23' },
  { 'value': 32840, 'label': 'Expected PDSyncData for one subslot with SyncID value 24' },
  { 'value': 32841, 'label': 'Expected PDSyncData for one subslot with SyncID value 25' },
  { 'value': 32842, 'label': 'Expected PDSyncData for one subslot with SyncID value 26' },
  { 'value': 32843, 'label': 'Expected PDSyncData for one subslot with SyncID value 27' },
  { 'value': 32844, 'label': 'Expected PDSyncData for one subslot with SyncID value 28' },
  { 'value': 32845, 'label': 'Expected PDSyncData for one subslot with SyncID value 29' },
  { 'value': 32846, 'label': 'Expected PDSyncData for one subslot with SyncID value 30' },
  { 'value': 32847, 'label': 'Expected PDSyncData for one subslot with SyncID value 31' },
  { 'value': 32848, 'label': 'PDInterfaceMrpDataReal for one subslot' },
  { 'value': 32849, 'label': 'PDInterfaceMrpDataCheck for one subslot' },
  { 'value': 32850, 'label': 'PDInterfaceMrpDataAdjust for one subslot' },
  { 'value': 32851, 'label': 'PDPortMrpDataAdjust for one subslot' },
  { 'value': 32852, 'label': 'PDPortMrpDataReal for one subslot' },
  { 'value': 32864, 'label': 'PDPortFODataReal for one subslot' },
  { 'value': 32865, 'label': 'PDPortFODataCheck for one subslot' },
  { 'value': 32866, 'label': 'PDPortFODataAdjust for one subslot' },
  { 'value': 32880, 'label': 'PDNCDataCheck for one subslot' },
  { 'value': 32881, 'label': 'PDInterfaceAdjust for one subslot' },
  { 'value': 32882, 'label': 'PDPortStatistic for one subslot' },
  { 'value': 32896, 'label': 'PDInterfaceDataReal' },
  { 'value': 32912, 'label': 'Expected PDInterfaceFSUDataAdjust' },
  { 'value': 32943, 'label': 'PE_EntityStatusData for one subslot' },
  { 'value': 32944, 'label': 'CombinedObjectContainer' },
  { 'value': 32975, 'label': 'RS_AdjustObserver' },
  { 'value': 45040, 'label': 'I&M0' },
  { 'value': 45041, 'label': 'I&M1' },
  { 'value': 45042, 'label': 'I&M2' },
  { 'value': 45043, 'label': 'I&M3' },
  { 'value': 45044, 'label': 'I&M4' },
  { 'value': 45045, 'label': 'I&M5' },
  { 'value': 45046, 'label': 'I&M6' },
  { 'value': 45047, 'label': 'I&M7' },
  { 'value': 45048, 'label': 'I&M8' },
  { 'value': 45049, 'label': 'I&M9' },
  { 'value': 45050, 'label': 'I&M10' },
  { 'value': 45051, 'label': 'I&M11' },
  { 'value': 45052, 'label': 'I&M12' },
  { 'value': 45053, 'label': 'I&M13' },
  { 'value': 45054, 'label': 'I&M14' },
  { 'value': 45055, 'label': 'I&M15' },
  { 'value': 45056, 'label': 'Sync-Log / RTA SyncID 0 (GSY)' },
  { 'value': 45057, 'label': 'Sync-Log / RTA SyncID 1 (GSY)' },
  { 'value': 45102, 'label': 'PROFIDrive Parameter Access - Local' },
  { 'value': 45103, 'label': 'PROFIDrive Parameter Access - Global' },
  { 'value': 45136, 'label': 'Ext-PLL Control / RTC+RTA SyncID 0 (EDD)' },
  { 'value': 45137, 'label': 'Ext-PLL Control / RTA SyncID 1 (GSY)' },
  { 'value': 45168, 'label': 'OHA Info (OHA)' },
  { 'value': 49152, 'label': 'ExpectedIdentificationData for one slot' },
  { 'value': 49153, 'label': 'RealIdentificationData for one slot' },
  { 'value': 49162, 'label': 'Diagnosis in channel coding for one slot' },
  { 'value': 49163, 'label': 'Diagnosis in all codings for one slot' },
  { 'value': 49164, 'label': 'Diagnosis, Maintenance, Qualified and Status for one slot' },
  { 'value': 49168, 'label': 'Maintenance required in channel coding for one slot' },
  { 'value': 49169, 'label': 'Maintenance demanded in channel coding for one slot' },
  { 'value': 49170, 'label': 'Maintenance required in all codings for one slot' },
  { 'value': 49171, 'label': 'Maintenance demanded in all codings for one slot' },
  { 'value': 57344, 'label': 'ExpectedIdentificationData for one AR' },
  { 'value': 57345, 'label': 'RealIdentificationData for one AR' },
  { 'value': 57346, 'label': 'ModuleDiffBlock for one AR' },
  { 'value': 57354, 'label': 'Diagnosis in channel coding for one AR' },
  { 'value': 57355, 'label': 'Diagnosis in all codings for one AR' },
  { 'value': 57356, 'label': 'Diagnosis, Maintenance, Qualified and Status for one AR' },
  { 'value': 57360, 'label': 'Maintenance required in channel coding for one AR' },
  { 'value': 57361, 'label': 'Maintenance demanded in channel coding for one AR' },
  { 'value': 57362, 'label': 'Maintenance required in all codings for one AR' },
  { 'value': 57363, 'label': 'Maintenance demanded in all codings for one AR' },
  { 'value': 57392, 'label': 'PE_EntityFilterData for one AR' },
  { 'value': 57393, 'label': 'PE_EntityStatusData for one AR' },
  { 'value': 57408, 'label': 'MultipleWrite' },
  { 'value': 57424, 'label': 'ARFSUDataAdjust data for one AR' },
  { 'value': 57440, 'label': 'RS_GetEvent (using RecordDataRead service)' },
  { 'value': 57441, 'label': 'RS_AckEvent (using RecordDataWrite service)' },
  { 'value': 61440, 'label': 'RealIdentificationData for one API' },
  { 'value': 61450, 'label': 'Diagnosis in channel coding for one API' },
  { 'value': 61451, 'label': 'Diagnosis in all codings for one API' },
  { 'value': 61452, 'label': 'Diagnosis, Maintenance, Qualified and Status for one API' },
  { 'value': 61472, 'label': 'ARData for one API' },
  { 'value': 63500, 'label': 'Diagnosis, Maintenance, Qualified and Status for one device' },
  { 'value': 63520, 'label': 'ARData' },
  { 'value': 63521, 'label': 'APIData' },
  { 'value': 63536, 'label': 'LogData' },
  { 'value': 63537, 'label': 'PDevData' },
  { 'value': 63552, 'label': 'I&M0FilterData' },
  { 'value': 63553, 'label': 'PDRealData' },
  { 'value': 63554, 'label': 'PDExpectedData' },
  { 'value': 63568, 'label': 'AutoConfiguration' },
  { 'value': 63600, 'label': 'PE_EntityFilterData' },
  { 'value': 63601, 'label': 'PE_EntityStatusData' },
  { 'value': 63616, 'label': 'AssetManagementData' }
]

const pniocmBlockTypeShowList = {
  '-1': 'any',
  0: 'Reserved',
  1: 'Alarm Notification High',
  2: 'Alarm Notification Low',
  8: 'IODWriteReqHeader',
  32776: 'IODWriteResHeader',
  9: 'IODReadReqHeader',
  32777: 'IODReadResHeader',
  18: 'ExpectedIdentificationData',
  19: 'RealIdentificationData',
  20: 'SubstituteValue',
  21: 'RecordInputDataObjectElement',
  22: 'RecordOutputDataObjectElement',
  23: 'reserved',
  24: 'ARData',
  25: 'LogData',
  26: 'APIData',
  27: 'SRLData',
  32: 'I&M0',
  33: 'I&M1',
  34: 'I&M2',
  35: 'I&M3',
  36: 'I&M4',
  37: 'I&M5',
  38: 'I&M6',
  39: 'I&M7',
  40: 'I&M8',
  41: 'I&M9',
  42: 'I&M10',
  43: 'I&M11',
  44: 'I&M12',
  45: 'I&M13',
  46: 'I&M14',
  47: 'I&M15',
  48: 'I&M0FilterDataSubmodul',
  49: 'I&M0FilterDataModul',
  50: 'I&M0FilterDataDevice',
  51: 'Reserved',
  52: 'I&M5Data',
  53: 'AssetManagementData',
  54: 'AM_FullInformation',
  55: 'AM_HardwareOnlyInformation',
  56: 'AM_FirmwareOnlyInformation',
  32769: 'Alarm Ack High',
  32770: 'Alarm Ack Low',
  257: 'ARBlockReq',
  33025: 'ARBlockRes',
  258: 'IOCRBlockReq',
  33026: 'IOCRBlockRes',
  259: 'AlarmCRBlockReq',
  33027: 'AlarmCRBlockRes',
  260: 'ExpectedSubmoduleBlockReq',
  33028: 'ModuleDiffBlock',
  261: 'PrmServerBlockReq',
  33029: 'PrmServerBlockRes',
  262: 'MCRBlockReq',
  33030: 'ARServerBlock',
  263: 'SubFrameBlock',
  264: 'ARVendorBlockReq',
  33032: 'ARVendorBlockRes',
  265: 'IRInfoBlock',
  266: 'SRInfoBlock',
  267: 'ARFSUBlock',
  268: 'RSInfoBlock',
  272: 'IODControlReq Prm End.req',
  33040: 'IODControlRes Prm End.rsp',
  273: 'IODControlReq Prm End.req',
  33041: 'IODControlRes Prm End.rsp',
  274: 'IOXBlockReq Application Ready.req',
  33042: 'IOXBlockRes Application Ready.rsp',
  275: 'IOXBlockReq Application Ready.req',
  33043: 'IOXBlockRes Application Ready.rsp',
  276: 'IODReleaseReq',
  33044: 'IODReleaseRes',
  277: 'ARRPCServerBlockReq',
  33045: 'ARRPCServerBlockRes',
  278: 'IOXControlReq Ready for Companion.req',
  33046: 'IOXControlRes Ready for Companion.rsp',
  279: 'IOXControlReq Ready for RT_CLASS_3.req',
  33047: 'IOXControlRes Ready for RT_CLASS_3.rsp',
  280: 'ControlBlockPrmBegin',
  281: 'SubmoduleListBlock',
  33048: 'ControlBlockPrmBeginRes',
  512: 'PDPortDataCheck',
  513: 'PDevData',
  514: 'PDPortDataAdjust',
  515: 'PDSyncData',
  516: 'IsochronousModeData',
  517: 'PDIRData',
  518: 'PDIRGlobalData',
  519: 'PDIRFrameData',
  520: 'PDIRBeginEndData',
  521: 'AdjustDomainBoundary',
  522: 'CheckPeers',
  523: 'CheckLineDelay',
  524: 'Checking MAUType',
  526: 'Adjusting MAUType',
  527: 'PDPortDataReal',
  528: 'AdjustMulticastBoundary',
  529: 'PDInterfaceMrpDataAdjust',
  530: 'PDInterfaceMrpDataReal',
  531: 'PDInterfaceMrpDataCheck',
  532: 'PDPortMrpDataAdjust',
  533: 'PDPortMrpDataReal',
  534: 'Media redundancy manager parameters',
  535: 'Media redundancy client parameters',
  536: 'Media redundancy RT mode for manager',
  537: 'Media redundancy ring state data',
  538: 'Media redundancy RT ring state data',
  539: 'Adjust LinkState',
  540: 'Checking LinkState',
  541: 'Media redundancy RT mode for clients',
  542: 'CheckSyncDifference',
  543: 'CheckMAUTypeDifference',
  544: 'PDPortFODataReal',
  545: 'Reading real fiber optic manufacturerspecific data',
  546: 'PDPortFODataAdjust',
  547: 'PDPortFODataCheck',
  548: 'Adjust PeerToPeerBoundary',
  549: 'Adjust DCPBoundary',
  550: 'Adjust PreambleLength',
  551: 'CheckMAUType-Extension',
  552: 'Reading real fiber optic diagnosis data',
  553: 'AdjustMAUType-Extension',
  554: 'PDIRSubframeData',
  555: 'SubframeBlock',
  560: 'PDNCDataCheck',
  561: 'MrpInstanceDataAdjust',
  562: 'MrpInstanceDataReal',
  563: 'MrpInstanceDataCheck',
  576: 'PDInterfaceDataReal',
  592: 'PDInterfaceAdjust',
  593: 'PDPortStatistic',
  1024: 'MultipleBlockHeader',
  1025: 'COContainerContent',
  1280: 'RecordDataReadQuery',
  1536: 'FSHello',
  1537: 'FSParameterBlock',
  1544: 'PDInterfaceFSUDataAdjust',
  1545: 'ARFSUDataAdjust',
  1792: 'AutoConfiguration',
  1793: 'AutoConfiguration Communication',
  1794: 'AutoConfiguration Configuration',
  2064: 'PE_EntityFilterData',
  2065: 'PE_EntityStatusData',
  2304: 'RS_AdjustObserver',
  2305: 'RS_GetEvent',
  2306: 'RS_AckEvent',
  45136: 'Ext-PLL Control / RTC+RTA SyncID 0 (EDD)',
  45137: 'Ext-PLL Control / RTA SyncID 1 (GSY)',
  45168: 'OHA Info (OHA)',
  3840: 'MaintenanceItem',
  3841: 'Upload selected Records within Upload&RetrievalItem',
  3842: 'iParameterItem',
  3843: 'Retrieve selected Records within Upload&RetrievalItem',
  3844: 'Retrieve all Records within Upload&RetrievalItem',
  3845: 'Signal a PE_OperationalMode change within PE_EnergySavingStatus'
}

const pniocmIndexShowList = {
  '-1': 'any',
  256: 'PROFISafe',
  32768: 'ExpectedIdentificationData for one subslot',
  32769: 'RealIdentificationData for one subslot',
  32778: 'Diagnosis in channel coding for one subslot',
  32779: 'Diagnosis in all codings for one subslot',
  32780: 'Diagnosis, Maintenance, Qualified and Status for one subslot',
  32784: 'Maintenance required in channel coding for one subslot',
  32785: 'Maintenance demanded in channel coding for one subslot',
  32786: 'Maintenance required in all codings for one subslot',
  32787: 'Maintenance demanded in all codings for one subslot',
  32798: 'SubstituteValues for one subslot',
  32808: 'RecordInputDataObjectElement for one subslot',
  32809: 'RecordOutputDataObjectElement for one subslot',
  32810: 'PDPortDataReal for one subslot',
  32811: 'PDPortDataCheck for one subslot',
  32812: 'PDIRData for one subslot',
  32813: 'Expected PDSyncData for one subslot with SyncID value 0',
  32815: 'PDPortDataAdjust for one subslot',
  32816: 'IsochronousModeData for one subslot',
  32817: 'Expected PDSyncData for one subslot with SyncID value 1',
  32818: 'Expected PDSyncData for one subslot with SyncID value 2',
  32819: 'Expected PDSyncData for one subslot with SyncID value 3',
  32820: 'Expected PDSyncData for one subslot with SyncID value 4',
  32821: 'Expected PDSyncData for one subslot with SyncID value 5',
  32822: 'Expected PDSyncData for one subslot with SyncID value 6',
  32823: 'Expected PDSyncData for one subslot with SyncID value 7',
  32824: 'Expected PDSyncData for one subslot with SyncID value 8',
  32825: 'Expected PDSyncData for one subslot with SyncID value 9',
  32826: 'Expected PDSyncData for one subslot with SyncID value 10',
  32827: 'Expected PDSyncData for one subslot with SyncID value 11',
  32828: 'Expected PDSyncData for one subslot with SyncID value 12',
  32829: 'Expected PDSyncData for one subslot with SyncID value 13',
  32830: 'Expected PDSyncData for one subslot with SyncID value 14',
  32831: 'Expected PDSyncData for one subslot with SyncID value 15',
  32832: 'Expected PDSyncData for one subslot with SyncID value 16',
  32833: 'Expected PDSyncData for one subslot with SyncID value 17',
  32834: 'Expected PDSyncData for one subslot with SyncID value 18',
  32835: 'Expected PDSyncData for one subslot with SyncID value 19',
  32836: 'Expected PDSyncData for one subslot with SyncID value 20',
  32837: 'Expected PDSyncData for one subslot with SyncID value 21',
  32838: 'Expected PDSyncData for one subslot with SyncID value 22',
  32839: 'Expected PDSyncData for one subslot with SyncID value 23',
  32840: 'Expected PDSyncData for one subslot with SyncID value 24',
  32841: 'Expected PDSyncData for one subslot with SyncID value 25',
  32842: 'Expected PDSyncData for one subslot with SyncID value 26',
  32843: 'Expected PDSyncData for one subslot with SyncID value 27',
  32844: 'Expected PDSyncData for one subslot with SyncID value 28',
  32845: 'Expected PDSyncData for one subslot with SyncID value 29',
  32846: 'Expected PDSyncData for one subslot with SyncID value 30',
  32847: 'Expected PDSyncData for one subslot with SyncID value 31',
  32848: 'PDInterfaceMrpDataReal for one subslot',
  32849: 'PDInterfaceMrpDataCheck for one subslot',
  32850: 'PDInterfaceMrpDataAdjust for one subslot',
  32851: 'PDPortMrpDataAdjust for one subslot',
  32852: 'PDPortMrpDataReal for one subslot',
  32864: 'PDPortFODataReal for one subslot',
  32865: 'PDPortFODataCheck for one subslot',
  32866: 'PDPortFODataAdjust for one subslot',
  32880: 'PDNCDataCheck for one subslot',
  32881: 'PDInterfaceAdjust for one subslot',
  32882: 'PDPortStatistic for one subslot',
  32896: 'PDInterfaceDataReal',
  32912: 'Expected PDInterfaceFSUDataAdjust',
  32943: 'PE_EntityStatusData for one subslot',
  32944: 'CombinedObjectContainer',
  32975: 'RS_AdjustObserver',
  45040: 'I&M0',
  45041: 'I&M1',
  45042: 'I&M2',
  45043: 'I&M3',
  45044: 'I&M4',
  45045: 'I&M5',
  45046: 'I&M6',
  45047: 'I&M7',
  45048: 'I&M8',
  45049: 'I&M9',
  45050: 'I&M10',
  45051: 'I&M11',
  45052: 'I&M12',
  45053: 'I&M13',
  45054: 'I&M14',
  45055: 'I&M15',
  45056: 'Sync-Log / RTA SyncID 0 (GSY)',
  45057: 'Sync-Log / RTA SyncID 1 (GSY)',
  45102: 'PROFIDrive Parameter Access - Local',
  45103: 'PROFIDrive Parameter Access - Global',
  45136: 'Ext-PLL Control / RTC+RTA SyncID 0 (EDD)',
  45137: 'Ext-PLL Control / RTA SyncID 1 (GSY)',
  45168: 'OHA Info (OHA)',
  49152: 'ExpectedIdentificationData for one slot',
  49153: 'RealIdentificationData for one slot',
  49162: 'Diagnosis in channel coding for one slot',
  49163: 'Diagnosis in all codings for one slot',
  49164: 'Diagnosis, Maintenance, Qualified and Status for one slot',
  49168: 'Maintenance required in channel coding for one slot',
  49169: 'Maintenance demanded in channel coding for one slot',
  49170: 'Maintenance required in all codings for one slot',
  49171: 'Maintenance demanded in all codings for one slot',
  57344: 'ExpectedIdentificationData for one AR',
  57345: 'RealIdentificationData for one AR',
  57346: 'ModuleDiffBlock for one AR',
  57354: 'Diagnosis in channel coding for one AR',
  57355: 'Diagnosis in all codings for one AR',
  57356: 'Diagnosis, Maintenance, Qualified and Status for one AR',
  57360: 'Maintenance required in channel coding for one AR',
  57361: 'Maintenance demanded in channel coding for one AR',
  57362: 'Maintenance required in all codings for one AR',
  57363: 'Maintenance demanded in all codings for one AR',
  57392: 'PE_EntityFilterData for one AR',
  57393: 'PE_EntityStatusData for one AR',
  57408: 'MultipleWrite',
  57424: 'ARFSUDataAdjust data for one AR',
  57440: 'RS_GetEvent (using RecordDataRead service)',
  57441: 'RS_AckEvent (using RecordDataWrite service)',
  61440: 'RealIdentificationData for one API',
  61450: 'Diagnosis in channel coding for one API',
  61451: 'Diagnosis in all codings for one API',
  61452: 'Diagnosis, Maintenance, Qualified and Status for one API',
  61472: 'ARData for one API',
  63500: 'Diagnosis, Maintenance, Qualified and Status for one device',
  63520: 'ARData',
  63521: 'APIData',
  63536: 'LogData',
  63537: 'PDevData',
  63552: 'I&M0FilterData',
  63553: 'PDRealData',
  63554: 'PDExpectedData',
  63568: 'AutoConfiguration',
  63600: 'PE_EntityFilterData',
  63601: 'PE_EntityStatusData',
  63616: 'AssetManagementData'
}

const pniocmFuncList = {
  'ANY': 'ANY',
  'Connect': 'Connect',
  'Release': 'Release',
  'Read': 'Read',
  'Write': 'Write',
  'Control': 'Control',
  'read_Implicit': 'read_Implicit'
}

const matchTypeList = {
  'string': '字符串匹配',
  'byte': '字节匹配'
}

const funcMmsList = {
  '1': '设备操作',
  '2': '变量操作',
  '3': '文件操作',
  '4': '日志操作',
  '5': '读取域属性',
  '6': '确认厂商标识'
}
const readWriteType2List = {
  '1': '读变量访问属性',
  '2': '定义有名变量',
  '3': '删除变量访问',
  '4': '定义有名变量列表',
  '5': '读有名变量列表属性',
  '6': '删除有名变量列表'
}
const readWriteType3List = {
  '1': '打开文件',
  '2': '读文件',
  '3': '关闭文件',
  '4': '删除文件',
  '5': '获取文件',
  '6': '文件目录'
}
const readWriteType4List = {
  '1': '读日志',
  '2': '写日志'
}

const selectList = {
  'TRUE': '放行',
  'FALSE': '阻断'
}

const cipTypeList = {
  'read': '读',
  'write': '写',
  'other': '其他'
}

const tagTypeCipList = {
  'array': '数组点',
  'single': '单点'
}

const commondList = {
  'read_discrete_inputs': 'read discrete inputs',
  'read_coils': 'read coils',
  'read_input_registers': 'read input registers',
  'read_holding_registers': 'read holding registers',
  'write_coils': 'write coils',
  'write_holding_registers': 'write holding registers',
  'passthrough': 'passthrough'
}
// enip
const enipCommond = [
  'NOP',
  'LIST_SERVICES',
  'LIST_IDENTITY',
  'LIST_INTERFACES',
  'REGISTER_SESSION',
  'UNREGISTER_SESSION',
  'SEND_RR_DATA',
  'SEND_UNIT_DATA',
  'INDICATE_STATUS',
  'CANCEL'
]

const mqttFUNCList = {
  'CONNECT' : 'CONNECT',
  'PUBLISH' : 'PUBLISH',
  'SUBSCRIBE' : 'SUBSCRIBE',
  'UNSUBSCRIBE' : 'UNSUBSCRIBE',
  'DISCONNECT' : 'DISCONNECT',
  'ANY':'ANY'
}

const ruleArray = {
  rule, // 规则
  ruleTip, // 规则提示
  ruleShow, // 展示用规则
  code, // s7 300功能码
  intervalList, // s7 300寄存器区间
  valueTypeList, // s7 300寄存器值类型
  valueTypeReList, //  S7_300_connect读寄存器值类型
  rangeList, // 寄存器值范围（开、关、开关）
  funcList, // modbus功能码
  iecFuncList, // iec104功能码
  iesTypeList, // iec104数据类型
  iecFuncShowList, // iec104功能码(展示用)
  actionList, // 动作
  actionList2, // ge snpx动作
  operateTypeList, // modbus类型
  writeRegFuncList, // modbus写操作功能码
  connectReadRegFuncList, // modbus读功能码
  opcValueTypeList, // opc数据请求类型
  opcOperateTypeList, // opc类型
  acceptRangeList, // opc匹配范围
  opcTypeList, // opc功能码
  msgTypeList, // opcua消息类型
  serviceIdList, // opcua服务码
  serviceIdShowList, // opcua服务码(展示用)
  msgTypeShowList, // opcua消息类型显示列表
  nodeIdMaskList, // opcua节点类型
  dataMaskList, // opcua数据值类型
  dataTypeList, // eipcip数据类型
  readWriteTypeList, // ab读写属性
  tagTypeList, // ab类型
  communicationTypeList, // ge报文类型
  registerTypeList, // ge寄存器类型
  dnp3FuncList, // dnp3功能码
  smart200FuncList, // smart200功能码
  registerIntervalList, // smart200寄存器区间
  s5List, // s5寄存器区间
  memserviceTypeList, // ge_snpx内存服务类型
  dataAreaList, // omron数据域
  bacnetFuncList, // bacnet功能码
  sanlingFuncList, // sanling功能码
  isWriteList, // sanling读写属性
  mitsubishiFuncList, // mitsubishi功能码
  frameList, // frame帧类型
  operationList, // dlt645数据操作类型
  applyVersionList, // iec101配电实施版本
  controlList, // iec101控制类型
  enableList, // cimplicity使能
  pniocmBlockTypeList, // pnio_cm模块属性
  pniocmIndexList, // pnio_cm操作对象
  pniocmFuncList, // pnio_cm功能码
  pniocmBlockTypeShowList, // pnio_cm模块属性（展示用）
  pniocmIndexShowList, // pnio_cm操作对象（展示用）
  matchTypeList, // 自定义匹配类型
  s7PlusIntervalList, // s7Plus寄存器区间
  s7PlusFuncList, // s7Plus字符访问读写属性
  accessModeList, // s7Plus访问类型
  actionMysqlList, // mysql匹配日志
  selectList, // mysql查询、修改、删除、插入
  funcMmsList, // mms功能码
  readWriteType2List, // mms功能码为 变量操作 时读写属性的选项
  readWriteType3List, // mms功能码为 文件操作 时读写属性的选项
  readWriteType4List, // mms功能码为 日志操作 时读写属性的选项
  cipTypeList, // cip配置中的类型
  tagTypeCipList, // cip点类型
  commondList, // cipmb功能码
  enipCommond, // enip功能码
  mqttFUNCList    // mqtt功能码
}

export default ruleArray
